06 面向对象编程
三大特性:封装、继承和多态。
面向对象的核心理念:
- Program to an ‘interface’, not an ‘implementation’
- 使用者不需要知道数据类型、结构、算法的细节。
- 使用者不需要知道实现细节,只需要知道提供的接口。
- 利于抽象、封装、动态绑定、多态。
- 符合面向对象的特质和理念。
- Favor ‘object composition’ over ‘class inheritance’
- 继承需要给子类暴露一些父类的设计和实现细节。
- 父类实现的改变会造成子类也需要改变。
- 继承看似主要是为了代码重用,但实际上在子类中需要重新实现很多父类的方法。
- 继承更多的是为了多态。